//输入 n（1≤n<5000000 且 n 为奇数）个数字 a i（1≤a i<10 9），输出这些数字的第 k 小的数。最小的数是第 0 小。
//
//请尽量不要使用 nth_element 来写本题，因为本题的重点在于练习分治算法。
#include<iostream>
using namespace std;
const int N = 5e6 + 10;
int q[N];
void quick_sort(int q[], int l, int r)
{
	if(l >= r)
		return;
	int x = q[l], i = l - 1, j = r + 1;
	while(i < j){
		do i++; while(q[i] < x);
		do j--; while(q[j] > x);
		if(i < j) swap(q[i], q[j]);
	}
	quick_sort(q, l, j);
	quick_sort(q, j + 1, r);
}
//int temp[N];
//void merge_sort(int q[], int l, int r)
//{
//	if(l >= r)
//		return;
//	int mid = (l + r) >> 1;
//	merge_sort(q, l, mid), merge_sort(q, mid + 1, r);
//	int k = 0, i = l, j = mid + 1;
//	while(i <= mid && j <= r)
//		if(q[i] <= q[j]) temp[k++] = q[i++];
//		else temp[k++] = q[j++];
//	while(i <= mid) temp[k++] = q[i++];
//	while(j <= r) temp[k++] = q[j++];
//	for(i = l, j = 0; i <= r; i++, j++)
//		q[i] = temp[j];
//}
int main()
{
	int n, k;
	cin >> n >> k;
	for(int i = 0; i < n; i++)
		scanf("%d", &q[i]);
	quick_sort(q, 0, n - 1);
	printf("%d", q[k]);
	return 0;
}
